﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AbstractFactory
{
    public interface IRoom
    {
        IWall EastWall { get; set; }
        IWall SouthWall { get; set; }
        IWall WestWall { get; set; }
        IWall NorthWall { get; set; }
    }

    public interface IWall
    {
        IDoor Door { get; set; }
    }

    public interface IDoor
    {
        bool IsOpen { get; set; }
    }

    public interface IMazeFactory
    {
        IRoom GetRoom();
        IWall GetWall();
        IDoor GetDoor();
    }

}